★★★用手機掃描書中QRCode立即觀看演算法動畫!★★★
⦿一圖一步驟,帶你打開演算法的黑箱!
⦿全彩超圖解,將抽象的演算法視覺化!
⦿內容淺顯易懂,沒有長篇難懂的理論!
「演算法」給人的第一印象就是好難學、理論好多,即使讀完千字文還是看不懂!o(〒﹏〒)o
沒錯!小編非常有同感,第一次接觸演算法時,就被「時間複雜度」弄得暈頭轉向,我一點也不想知道這些數學式是怎麼推導的啊,只要知道哪個演算法比較快、比較好用就可以了!還有,常遇到同一個詞有不同說法,在Google搜尋時就會搞不清楚是不是指同一件事,例如BinaryTreeTraversal,就有「二元樹追蹤、二元樹訪問、二元樹走訪、二元樹遍歷……」,這麼多種稱呼,實在讓人困惑!所以本書的專有名詞除了標示中文外,也會加上英文,以便讀者查詢更多資訊。
透過本書一圖一步驟地拆解演算法背後的原理,我終於弄懂演算法的運作了,其實演算法沒有想像中那樣神秘、可怕,而是有規則可循的。看懂其運作原理後,由衷佩服這些設計演算法的人,原來他們是這樣思考與拆解問題的啊,我怎麼都沒想到呢!
本書收錄許多知名的演算法與資料結構,其中有些演算法已經被主流的程式語言編寫成方便使用的「函式庫」。不過「函式庫」是一種將工作原理藏在內部的「黑箱」,因此大多數人在使用時不見得對演算法有充分的理解。想要寫出執行效能佳的程式,得確實理解演算法的工作原理才行。
本書介紹的資料結構與演算法
✪陣列的查詢:
互換元素/尋找最大值/互換排序/合計/最小元素值/最小元素位置/線性搜尋法/二元搜尋法
✪排序:
反轉/插入/合併/分割/氣泡排序法/選擇排序法/插入排序法/合併排序法/快速排序法/堆積排序法/計數排序法/希爾排序法
✪與整數相關的演算法:
埃拉托斯特尼篩法/輾轉相除法
✪資料結構:
堆疊/佇列/雙向鏈結串列/雜湊表
✪陣列的計算:
累積和/一維累積和的應用/二維累積和的應用
✪堆積:
UpHeap/DownHeap/建立堆積/優先佇列
✪二元樹的走訪:
前序走訪/後序走訪/中序走訪/層序走訪
✪其他:
廣度優先搜尋/卡恩演算法/深度優先搜尋/Tarjan演算法/UnionByRank/Union-FindTree/普林演算法/克魯斯克爾演算法/戴克斯特拉演算法/貝爾曼-福特演算法/弗洛伊德演算法/包裹法/葛立恆掃描法/安德魯演算法/線段樹:RMQ/線段樹:RSQ/二元搜尋樹/旋轉/樹堆……
本書特色:
★觀看【演算法動畫】同時搭配書中的原理說明,讓學習效果翻倍!
★收錄【61個經典的演算法+資料結構】,讓你活化思維並提升邏輯思考力!
★【豐富的圖解及圖示設計】將抽象的演算法視覺化,易讀易學好吸收!
★逐步拆解演算法的運作原理、解析執行效率及優缺點,突破盲點、顛覆思考。
★沒有難懂的數學推導及長篇理論說明,降低學習門檻!
作者簡介:
▍渡部有隆(WatanobeYutaka)
1979年出生。資訊工程學系博士。會津大學資訊工程學院資訊系統部資深副教授。專業領域為程式語言視覺化。AIZUONLINEJUDGE開發者。
http://web-ext.u-aizu.ac.jp/~yutaka/
▍MirenkovNikolay
畢業於新西伯利亞國立技術大學。專業領域為方法的視覺化與分散式運算。會津大學教授(1993-2013)、會津大學副校長(2007-2009)。會津大學特別榮譽教授(2009-2013)。
目錄:
Part1 準備篇
第1章 程式設計的基本元素
第2章 程式設計的應用元素
第3章 演算法的基礎概念
Part2 空間結構
第4章 空間結構的概要
第5章 陣列
第6章 樹狀結構
第7章 圖形
第8章 點群
第9章 動態結構
Part3 演算法與資料結構
第10章 入門
第11章 陣列基本查詢
第12章 搜尋
第13章 陣列元素排序
第14章 必學的排序法
第15章 與整數相關的演算法
第16章 基本資料結構1
第17章 陣列的計算
第18章 堆積
第19章 二元樹的走訪
第20章 高效率的排序法
第21章 基本資料結構2
第22章 廣度優先搜尋
第23章 深度優先搜尋
第24章 Union-FindTree
第25章 尋找最小生成樹的演算法
第26章 最短路徑演算法
第27章 計算幾何
第28章 線段樹
第29章 搜尋樹